Amazon Athena
Amazon Athena は、S3上にあるファイルに対してSQLを実行して、一覧を取得したり集計したりできるサービス ファイル形式は .csv, .tsv, .json, 各種ログ出力形式, 等々..
とは言え、任意のcsvやjsonを扱えるわけではない
ファイルは .gz 等で圧縮されていても扱える
https://gyazo.com/a00d9e402c7b5be71c1c2375c87a4e4a
Athena メモ
JSON形式ファイルを扱えるといっても、正しい .json は扱えない 1行1レコード、改行区切り(末尾カンマNG)
NG1:
code:json
{
'id': 123,
'name': 'foo'
}
NG2:
code:json
[
{'id': 123, 'name': 'foo'},
{'id': 124, 'name': 'bar'}
]
NG3:
code:json
OK
code:json
{'id': 123, 'name': 'foo'}
{'id': 124, 'name': 'bar'}
S3パスを書くとき、ファイル名の途中まででマッチングはしない
実際のファイルパス /prefix_yyyymmdd.json
NG: LOCATION 's3://bucketname/preefix_'
NG: LOCATION 's3://bucketname/preefix_*'
OK: LOCATION 's3://bucketname/' ただし全ファイルを見ようとする
実際のファイルパス /prefix/prefix_yyyymmdd.json
OK: LOCATION 's3://bucketname/prefix/'
このため、データの種類ごとにkey(ディレクトリ)分けて置いた方がよさそう